Database systems managing large amounts of data on behalf of users often receive a high volume of request traffic to access data and to manage the storage of data. In some database service implementations, database objects such as tables or indexes may be partitioned across multiple partitions that are separately managed by different groups of compute nodes. In some systems, each partition may be associated with a throughput limit limiting the number of accesses to the partition (e.g., 1000 write operations per second to each partition). In some cases, users may wish to store a data set in a database object in sorted order. However, in some embodiments of partitioned database objects, data items cannot be easily sorted across different partitions. As a result, users may typically store all data items in one of the partitions to allow the data items to be store in sorted order. However, because the user only uses one partition of the database object, the user is limited by the access throughput limit of the single partition, and does not receive the full provisioned throughput of the database object. Moreover, even if data is stored across the multiple partitions, aggregation work may need to be performed when querying data across the multiple partitions. In addition, keeping the partitions relatively balanced over time also becomes a challenge. In particular, it is generally difficult for users to predict the usage level of each partition when the partitions are populated with real data. These problems generally reduce the efficiency and usefulness of partitioned database objects.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the present invention. The first contact and the second contact are both contacts, but they are not the same contact.